﻿// <copyright file="CongressMember.cs" company="Microsoft Corporation">
// Copyright (c) 2009 Microsoft Corporation All Rights Reserved
// </copyright>
// <author>Michael S. Scherotter</author>
// <email>mischero@microsoft.com</email>
// <date>2009-05-21</date>
// <summary>CongressMember class definition</summary>

namespace NYTimes.Data
{
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;

    /// <summary>
    /// US Congress member
    /// </summary>
    public class CongressMember
    {
        /// <summary>
        /// Gets or sets the congress member's ID
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// Gets or sets the name; May be deprecated in V3 API
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets the first name
        /// </summary>
        public string FirstName { get; set; }

        /// <summary>
        /// Gets or sets the middle name
        /// </summary>
        public string MiddleName { get; set; }

        /// <summary>
        /// Gets or sets the last name
        /// </summary>
        public string LastName { get; set; }

        /// <summary>
        /// Gets or sets the date of birth
        /// </summary>
        public DateTime DateOfBirth { get; set; }

        /// <summary>
        /// Gets or sets the gender (M or F)
        /// </summary>
        public string Gender { get; set; }

        /// <summary>
        /// Gets or sets the member's URL
        /// </summary>
        public Uri Url { get; set; }

        /// <summary>
        /// Gets or sets the Government Track Id
        /// </summary>
        public string GovTrackId { get; set; }

        /// <summary>
        /// Gets or sets the CSpan ID for the member of congress
        /// </summary>
        public string CSpanId { get; set; }

        /// <summary>
        /// Gets or sets the party affiliation
        /// </summary>
        public string Party { get; set; }

        /// <summary>
        /// Gets or sets the missed vote percentage
        /// </summary>
        public float MissedVotePercent { get; set; }

        /// <summary>
        /// Gets or sets the votes with party percentage
        /// </summary>
        public float VotesWithPartyPercent { get; set; }

        /// <summary>
        /// Gets or sets the district for house representatives
        /// </summary>
        public int? District { get; set; }

        /// <summary>
        /// Gets or sets the state (2-letter abbreviation)
        /// </summary>
        public string State { get; set; }

        /// <summary>
        /// Gets or sets the API URI
        /// </summary>
        public Uri ApiUri { get; set; }

        /// <summary>
        /// Gets or sets the seniority
        /// </summary>
        public int Seniority { get; set; }

        /// <summary>
        /// Gets or sets the next election year
        /// </summary>
        public int? NextElection { get; set; }
    }
}
